仅适用于在任务中对任务级公共资源的资源同步(互斥访问)。
更多...
仅适用于在任务中对任务级公共资源的资源同步(互斥访问)。
- 注解
- 有优先级继承/天花板机制,以抑制优先级反转的发生。
-
互斥信号量均支持嵌套使用,最大嵌套深度255,获取与归还必须配对使用。
-
如果任务中调用了获取互斥量,应谨慎操作该任务,如操作不当可能会导致获取相同互斥量的其它任务死锁。
| #define uBackMut |
( |
|
mut | ) |
sUSV_BackMut(mut) |
| #define uCreateMut |
( |
|
mut | ) |
sCSV_CreateMut(mut) |
创建互斥信号量
- 参数
-
- 返回
- 无
- 警告
- 创建互斥信号量时,系统将自动赋初值,用户不可赋初值。
在文件 ur_api.h 第 789 行定义.
| #define uExternMut |
( |
|
mut | ) |
sCSV_ExternMut(mut) |
| #define uTakeMut |
( |
|
mut, |
|
|
|
tc |
|
) |
| sUSV_TakeMut(mut, tc) |
获取互斥信号量
- 参数
-
| [in] | mut | 互斥信号量名称 |
| [in] | tc | 滴答周期(超时时间)
+0:立即返回
~0:无限等待 |
- 返回
- 结果(bool)
- 返回值
-
- 警告
- 不支持在临界区中,包括任务临界区、服务层临界区、全局临界区,或关闭总中断时调用。
-
当tc为~0时(无限等待),仍建议用户查询返回值,原因是当在多个相同优先级的任务中
获取同一个互斥信号量时(采用时间片轮转调度),其返回结果仍然有失败的可能。
在文件 ur_api.h 第 804 行定义.